1. Field of the Invention
The present invention relates to a digital signal processor (hereinafter, referred to as a DSP), and more particularly, to a real-time control system which can accurately support the real-time characteristics of a multitasking DSP which must use an operating system (hereinafter, referred to as an OS).
2. Description of the Related Art
As the market of DSPs expands, the application field of DSPs becomes wide to the extent of exceeding the growth speed of general purpose processors. Considering the current development of an information communications field and the further growth possibility of digital home appliance market, DSPs are a field that can be infinitely developed.
In such DSPs, software is given much weight, since DSPs must realize a signal processing algorithm. Also, DSPs require many numerical operation processes. Hence, the use of an OS is indispensable for DSPs that must concurrently perform several operations, such as, for industrial-use embedded systems. DSPs also must achieve real time signal processing, which requires the use of an OS such as a real-time kernel instead of an existing general purpose OS.
The operation of an existing real-time kernel will now be described on the basis of a queue_link management structure and in a memory management structure.
FIG. 1A shows a ready queue_link management structure of an existing real-time kernel. A ready queue_link 100 is a layer which switches between tasks on the basis of a list of tasks waiting to be allocated, using a processor such as a CPU. Each of the tasks is controlled on the basis of a corresponding task control bank (TCB) 110, 120 or 130. Each of the TCBs 110, 120 and 130 includes information associated with a corresponding task or information representing the states of resources.
The management structure of a real time kernel with respect to the ready queue_link 100 shown in FIG. 1A has a double linked list using a forward link (hereinafter, referred to as a flink) and a backward link (hereinafter, referred to as a blink). The linked list varies according to the location where a new task is added. For example, when a TCB for a new task is added between the TCB 110 and the TCB 120, the flink and blink in each of the TCBs 110 and 120 are updated to be connected to the newly-added TCB.
The real-time kernel having the above-described ready queue link management structure searches for the TCB for a task having the highest priority along the flinks. For example, when the ready queue link 100 indicates the TCB 110, the TCB 110 is checked if it is for a task having the highest priority. If it is determined that the TCB 110 is not for a task having the highest priority, the TCB 120 is searched for along the flink of the TCB 110 and checked whether the TCB 120 is for a task having the highest priority. This searching and checking process is repeated until a TCB having the highest priority is found or the connection of flinks ends.
Accordingly, the time taken for a real-time kernel to perform queuing varies depending on the number of tasks connected. That is, as the number of tasks connected increases, the time required for task searching increases. This non-deterministic management structure is not applied only to the ready queue link 100 but is also applied to a waiting queue link which operates on the basis of a task list for securing resources, and to a timer that controls the operating time of a task for each event. However, the non-deterministic management structure cannot sufficiently satisfy the requirement for real time processing in DSPs.
FIG. 1B shows a memory management structure of an existing real-time kernel. As can be seen from FIG. 1B, an existing real-time kernel manages memories in a structure where a physical memory has one to one correspondence to a logical memory. That is, an existing real-time kernel manages memories, which are physically arranged in the order of RAM, FLASH and ROM, to logically arrange the memories in the order of ROM, FLASH and RAM, as shown in FIG. 1B. Also, when various types of memories are mixed, an existing real-time kernel can manage memories so that a ROM is particularly discriminated and used, while the remaining memories are used indiscriminately at user  request.
DSPs require a multiple memory structure in which, when fast processing is required, the internal memory of a DSP is allocated, and, when fast processing is not required, the external memory of the DSP is allocated. However, in the above-described memory management structure of an existing real-time kernel, memories are not managed by discriminating between the internal memory and the external memory. Thus, users must manage memories separately from an OS, in order to achieve the above-described memory management of DSPs.